/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏李涛
 * Date: 2024-10-15
 * Time: 17:00
 */
import java.util.Scanner;
/**
 *【模板】二维前缀和
 * 题目
 * 题解(30)
 * 讨论(13)
 * 排行
 * 中等  通过率：25.13%  时间限制：2秒  空间限制：256M
 * warning 校招时部分企业笔试将禁止编程题跳出页面，为提前适应，练习时请使用在线自测，而非本地IDE。
 * 描述
 * 给你一个 n 行 m 列的矩阵 A ，下标从1开始。
 *
 * 接下来有 q 次查询，每次查询输入 4 个参数 x1 , y1 , x2 , y2
 *
 * 请输出以 (x1, y1) 为左上角 , (x2,y2) 为右下角的子矩阵的和，
 * 输入描述：
 * 第一行包含三个整数n,m,q.
 *
 * 接下来n行，每行m个整数，代表矩阵的元素
 *
 * 接下来q行，每行4个整数x1, y1, x2, y2，分别代表这次查询的参数

 * ​
 *  ≤y
 * 2
 * ​
 *  ≤m
 * 输出描述：
 * 输出q行，每行表示查询结果。
 * 示例1
 * 输入：
 * 3 4 3
 * 1 2 3 4
 * 3 2 1 0
 * 1 5 7 8
 * 1 1 2 2
 * 1 1 3 3
 * 1 2 3 4
 * 复制
 * 输出：
 * 8
 * 25
 * 32
 */
public class TwoDimensionalPrefixSum {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt(),m = in.nextInt(), q = in.nextInt();
        int[][] arr = new int[n+1][m+1];//下标从1开始
        for(int i= 1; i <= n; i++){
            for(int j = 1; j <= m; j++){
                arr[i][j] = in.nextInt();
            }
        }


        //预处理前缀和矩阵
        long[][] dp = new long[n+1][m+1];
        for(int i = 1; i <= n; i++)
            for(int j = 1; j <= m; j++)
                dp[i][j] = dp[i-1][j] + dp[i][j-1] + arr[i][j] - dp[i-1][j-1];

        //使用前缀和矩阵
        while(q > 0) {
            int x1 = in.nextInt(),y1 = in.nextInt(),x2 = in.nextInt(),y2 = in.nextInt();
            System.out.println(dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] + dp[x1-1][y1-1]);
            q--;
        }
    }
}
